#ifndef MOTORJUEGOSERVICIO_H
#define	MOTORJUEGOSERVICIO_H

#include <iostream>
#include <vector>
#include "Servicio.h"
#include "MotorJuego.h"
#include "Mutex.h"

using namespace std;
using namespace TP::Juego::Motorizacion;
using namespace TP::Threading;

namespace TP { namespace Servicios {

class MotorJuegoServicio : public Servicio {
public:
    
    MotorJuegoServicio();
    
    virtual ~MotorJuegoServicio();
    
    virtual void iniciar();
    
    virtual void finalizar();   
    
    virtual void mensajeEntranteManejador (IMensajero* pMensajero,
        const string& pMensaje);
    
    void getPartida (IMensajero* pMensajero, vector<string>& pComando);
    
    void atacar(IMensajero* pMensajero, vector<string>& pComando);
    
    void setMotorJuego (MotorJuego* pMotor);

private:
    MotorJuego* _motor;
    Mutex _mutex;
};
}}

#endif	/* MOTORJUEGOSERVICIO_H */